package cn.iocoder.yudao.module.cmt.controller.admin.activity.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;

@Schema(description = "管理后台 - ActivitySignup Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivitySignupRespVO {

    @Schema(description = "ID", example = "1")
    @ExcelProperty("ID")
    private Long id;

    @Schema(description = "社区ID", example = "1")
    @ExcelProperty("社区ID")
    private Long communityId;

    @Schema(description = "商户ID", example = "1")
    @ExcelProperty("商户ID")
    private Long merchantId;

    @Schema(description = "活动ID", example = "1")
    @ExcelProperty("活动ID")
    private Long activityId;

    @Schema(description = "会员ID", example = "1")
    @ExcelProperty("会员ID")
    private Long userId;

    @Schema(description = "参与人员ID(如为他人报名)", example = "1")
    @ExcelProperty("参与人员ID")
    private Long personId;

    @Schema(description = "报名时间")
    @ExcelProperty("报名时间")
    private LocalDateTime signupTime;

    @Schema(description = "审核状态：0待审核 1通过 2拒绝", example = "1")
    @ExcelProperty("审核状态")
    private Integer auditStatus;

    @Schema(description = "签到状态：0未签到 1已签到", example = "0")
    @ExcelProperty("签到状态")
    private Integer checkinStatus;

    @Schema(description = "签到时间")
    @ExcelProperty("签到时间")
    private LocalDateTime checkinTime;

    @Schema(description = "已发放积分", example = "10")
    @ExcelProperty("已发放积分")
    private Integer pointAwarded;

    @Schema(description = "已发放经验", example = "5")
    @ExcelProperty("已发放经验")
    private Integer experienceAwarded;

    @Schema(description = "取消状态：0正常 1已取消", example = "0")
    @ExcelProperty("取消状态")
    private Integer cancelStatus;

    @Schema(description = "取消时间")
    @ExcelProperty("取消时间")
    private LocalDateTime cancelTime;

    @Schema(description = "取消原因")
    @ExcelProperty("取消原因")
    private String cancelReason;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
